in_definite 1.0.0

Get the indefinite article ('a' or 'an') to match the given word. For example: an umbrella, a user.
Documentation

in_definite

Rust port of indefinite on npm, for deciding which indefinite article to use ('a' or 'an').

Get the indefinite article ('a' or 'an') to match the given word. For example: an umbrella, a user.

Rust

Examples

use in_definite;

let result = in_definite::get_a_or_an("alien");
assert_eq!("an", result);
// Irregular word
let result = in_definite::get_a_or_an("unicorn");
assert_eq!("a", result);
// Title Case
let result = in_definite::get_a_or_an("Ugly");
assert_eq!("An", result);
let result = in_definite::is_an("alien");
assert_eq!(in_definite::Is::An, result);
let result = in_definite::is_an("unicorn");
assert_eq!(in_definite::Is::A, result);

Deviations from the original indefinite

Upper/lower/mixed case handling:

  • a word like THIS will be always considered to be an acronym.
  • normally the result is lower case ('a' or 'an')
  • title case is handled as: 'Ugly' -> 'An'
  • mixed case is handled as: 'uGly' -> 'an'

Adverbs:

  • Handles adverbs with '-ly' in a generic manner. Example: "a ubiquitously"

A big thanks to the original authors of indefinite!

Published @ crates.io

https://crates.io/crates/in_definite

licence = MIT

This project is licensed under the MIT License - see the LICENSE file for details